/**
 * 金额校验
 * @param {Number} value 金额
 * @param {Number} min 最大值
 * @param {Number} max 最小值
 * @param {Number} point 小数点个数
 */
export function validateAmount (value, min, max, point) {
    let v = Number(value)
    if (isNaN(v) || v < min || v > max) return false
    let arr = v.toString().split('.')
    if (arr.length == 1) return true
    if (point < 0) point = 0
    return arr[1].length <= point
}

/**
 * 传真校验
 * @param {string} value 传真号码
 */
export function validateFix (value) {
    return /^(\d{3,4}-)?\d{7,8}$/.test(value)
}

/**
 * 银行卡号校验
 * @param {Number} value 银行卡号
 */
export function validateBankAccount (value) {
    return /^\d{1,25}$/.test(value)
}

/**
 * 电话号校验
 * @param {Number} value 电话号
 */
export function validatePhone (value) {
    return /^(\d|-){0,19}\d$/.test(value)
}

/**
 * 校验社会统一信用代码
 * 大写英文字母或数字，长度等于18个字符
 * @param {String} code 社会统一信用代码
 */
export function validateSocialCreditCode (code) {
    return /^(\d|[A-Z]){18}$/.test(code)
}

/**
 * 校验密码格式（密码只能在 8~15 位之间 / 密码至少包含大小写英文字母、数字、或特殊符合当中的两种。）
 * @param {String} pw 密码
 */
export function validatePassword (pw) {
    return /(?!^\d+$)(?!^[A-Za-z]+$)(?!^[^A-Za-z0-9]+$)(?!^.*[\u4E00-\u9FA5].*$)^\S{8,15}$/.test(pw)
}
